package com.ctshk.rpc.ship.req;

import com.ctshk.common.model.PageReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 船票信息req
 * </p>
 *
 * @author 刘蕾
 * @since 2021年03月08日
 */
@Data
@ApiModel(value = "ShipProductPageReq对象", description = "船票产品信息PageReq")
public class ShipProductIsRecommendedReq extends PageReq implements Serializable {

    private static final long serialVersionUID = 1L;

    @NotNull
    @ApiModelProperty(value = "预订查询参数：船票类型 1 单程票 2 往返票")
    private Long ticketType;

    @ApiModelProperty(value = "前端忽略此字段")
    private Long id;

    @ApiModelProperty(value = "前端忽略此字段")
    private String code;

    @ApiModelProperty(value = "预订查询参数：船公司类型(1 信德船票，2 珠江船票)")
    private Integer companyType;

    @NotNull
    @ApiModelProperty(value = "预订查询参数：出发城市id")
    private Long depCityId;

    @ApiModelProperty(value = "出发城市名称")
    private String depCityName;

    @NotNull
    @ApiModelProperty(value = "预订查询参数：到达城市id")
    private Long arrCityId;

    @ApiModelProperty(value = "到达城市名称")
    private String arrCityName;

    @ApiModelProperty(value = "航线id")
    private Long routeId;

    @ApiModelProperty(value = "航线名称")
    private String routeName;

    @ApiModelProperty(value = "航次码")
    private String voyage;

    @NotNull
    @ApiModelProperty(value = "前端忽略此字段")
    private LocalDate startDate;

    @ApiModelProperty(value = "预订查询参数：出发日期")
    private LocalDateTime depTimeStart;

    @ApiModelProperty(value = "预订查询参数：返程日期")
    private LocalDateTime arrTimeStart;

    @ApiModelProperty(value = "前端忽略此字段")
    private LocalDateTime depDateStart;

    @ApiModelProperty(value = "前端忽略此字段")
    private LocalDateTime depDateEnd;

    @ApiModelProperty(value = "预订查询参数：出发地id")
    private Long depPlaceId;

    @ApiModelProperty(value = "预订查询参数：到达地id")
    private Long arrPlaceId;

    @NotNull(message = "API产品-出发地code不能为空")
    @ApiModelProperty(value = "出发地id")
    private String depPlaceCode;

    @NotNull(message = "API产品-到达地code不能为空")
    @ApiModelProperty(value = "到达地id")
    private String arrPlaceCode;

    @ApiModelProperty(value = "出发地名称")
    private String depPlaceName;

    @ApiModelProperty(value = "到达地名称")
    private String arrPlaceName;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClass;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @NotNull
    @ApiModelProperty(value = "总票数")
    private Integer ticketNumber;
}
